/**************************************************************************************************
* Title: SumRenderEntity.h
* Author: Gael Huber
* Description: A renderable entity within the engine. Contains information about relevant scene,
*	mesh data, textures, etc.
**************************************************************************************************/
#ifndef __SUMRENDERENTITY_H__
#define __SUMRENDERENTITY_H__

#include "SumString.h"
#include "SumMesh.h"
#include "SumMath.h"

class RenderEntity {
public:
	// Constructor
	RenderEntity(void);

	// Constructor with name, mesh name
	RenderEntity(const String& name, Mesh* mesh);

	// Copy constructor
	RenderEntity(const RenderEntity& rhs);

	// Destructor
	~RenderEntity(void);

	// Get the entity name
	const String& name(void) const;

	// Get the mesh
	Mesh* mesh(void) const;

	// Get the transform information
	Matrix_16f& transform(void);

	// Set the transform information
	void transform(const Matrix_16f& transform);

private:
	// Entity name
	String _name;

	// Mesh pointer
	Mesh* _mesh;

	// Transform information
	Matrix_16f _transform;
};

#endif